package com.sunspring.zdcall.service;

import com.sunspring.zdcall.bo.UserBo;
import com.sunspring.zdcall.dto.UserDto;
import com.sunspring.zdcall.param.UserParam;
import com.sunspring.zdcall.param.UserSearchParam;

import java.util.List;

/**
 * @Author WuLei
 * @Date 2018/12/3  11:46
 */
public interface UserService {

    /**
     * 根据用户名、密码查询用户信息
     * @param username username
     * @param password password
     * @return UserInfoDto
     */
    UserDto selectUser(String username, String password);

    /**
     * 修改密码
     * @param username 用户名
     * @param oldPwd 旧密码
     * @param newPwd 新密码
     */
    void verifyPwd(String username, String oldPwd, String newPwd);

    /**
     * 用户登录
     * @param username username
     * @param password password
     * @return UserInfoDto
     */
    UserDto userLogin(String username, String password);

    /**
     * 查询用户集合
     * @param usp UserSearchParam用户查询参数
     * @return List<UserInfoDto>
     */
    List<UserDto> selectAll(UserSearchParam usp);

    /**
     * 注册新用户
     * @param userParam UserParam用户参数
     */
    void addNewUser(UserParam userParam);

    /**
     * 停用启用用户
     * @param userId 用户ID
     */
    void changeState(int userId);

    /**
     * 更新用户（所属科室和检查室）
     * @param userId 用户id
     * @param checkroomIds 检查室id集合
     */
    void updateUser(int userId,String checkroomIds);

    /**
     * 密码重置
     * @param userId 用户id
     */
    void resetPwd(int userId);
}
